/*

    tools23d - tools for converting images to 3D formats.
    Copyright (C) 2014  Dave Gorst

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

*/

#ifndef IMAGE_H_INCLUDED
#define IMAGE_H_INCLUDED

#define FHD3D_SEPARATOR_BAND 45

typedef struct
{
	unsigned int width;		/**<Width (in pixels) of image */
	unsigned int height;	/**<Height (in pixels) of image */
	unsigned int depth;		/**<Bit depth of image */
	IMAGE_FORMAT format;	/**<Format of image */
} image_details;

BOOL T3D_InitialiseImageHandling (image_details *, Filters, LogLevel);
void T3D_ShutdownImageHandling (void);

BOOL T3D_Write3DImage (char *, char *, char *, image_details *, Mode, Filters, AutoCropTypes, BOOL, LogLevel, unsigned int);

BOOL T3D_DoZoom (image_details *, image_index *, image_index *, unsigned int, int *, int *);
BOOL T3D_DoCrop (image_details *, image_index *, image_index *, int, int, AutoCropTypes);
BOOL T3D_DoColourConversion (image_index *, image_index *, ColourScheme);
BOOL T3D_DoLoad (char *, char *, unsigned int *, unsigned int *);
void T3D_DoClear (unsigned int, unsigned int);
BOOL T3D_DoCheck (char *, char *, unsigned int *, unsigned int *, unsigned int *);

#endif
